package org.dfyy.postgisdemo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;

/**
 * @author 书山
 * @version 1.0
 * @date 2024-04-26 11:36
 */

@Configuration
public class MyCorsFilter {

    /**
     * 通过过滤器方式实现跨域
     * @return
     */
    @Bean
    public CorsFilter corsFilter(){

        // 1
        // 创建CORS对象
        CorsConfiguration config = new CorsConfiguration();

        // 配置支持那些来源
        config.addAllowedOriginPattern("*"); // 全部来源
        // 是否支持cookie
        config.setAllowCredentials(true);   // 支持cookie
        // 支持的请求方式
        config.addAllowedMethod("*");       // 所有类型的方法

        // 2
        // 添加地址影射  那些控制器支持跨域
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        corsConfigurationSource.registerCorsConfiguration("/**",config);

        // 3
        // 返回corsConfigurationSource
        return new CorsFilter(corsConfigurationSource);


    }


}
